home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-09-21 | 36.7 KB | 1,240 lines |
- '**************************************************************************
- '* Tun TCP Setup installation script
- '**************************************************************************
-
- ''$DEFINE DEBUG ''Define for script development/debugging
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
-
-
- GLOBAL ASKCUSTOM$
- GLOBAL FINDINSTTYPE$
- GLOBAL ENCRYPTDLG$
- GLOBAL COPYFILES$
- GLOBAL ENCRYPTFILES$
- GLOBAL CREATEINIFILES$
- GLOBAL ADDPATH$
- GLOBAL ASKTCPCONF$
- GLOBAL RUNTCPCONF$
- GLOBAL CREATEGROUPS$
- GLOBAL szSN$
- GLOBAL szAK$
- GLOBAL szLS$
- GLOBAL DEST$ ''Default destination directory.
-
- '$INCLUDE 'setup.inc'
-
- ''Dialog ID's
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST EXITFAILURE = 400
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST APPHELP = 900
- CONST DIREXIST = 1000
- CONST CUSTINST = 6200
- CONST TOOBIG = 6300
- CONST BADPATH = 6400
- CONST CDGETNAMEORG = 7500
- CONST CDBADORG = 7800
- CONST MODELESS = 5000
- CONST MODELESS2 = 5001
- CONST ASKUPDATE = 5003
- CONST ASKYESNOBACK = 5004
- CONST ASKYESNO = 5005
- CONST CDBADFILE = 7200
- CONST GETSERIALNUM = 1100
- CONST WINPATH = 1300
-
- ''Bitmap ID
- CONST LOGO = 1
-
- ''File Types
- CONST APPFILES = 1
- CONST OPTFILES1 = 2
- CONST OPTFILES2 = 3
- CONST OPTFILES3 = 4
- CONST OPTFILES4 = 5
- CONST OPTFILES5 = 6
- CONST CRYPTFILES = 100
- CONST CTL3DFILES = 101
- CONST CONVERTFILES = 102
-
- ''Standard dialog button IDs
- CONST IDOK = 1
- CONST IDCANCEL = 2
- CONST IDABORT = 3
- CONST IDRETRY = 4
- CONST IDIGNORE = 5
- CONST IDYES = 6
- CONST IDNO = 7
-
- GLOBAL DESTKER$ ''Default destination sub-directory.
- GLOBAL DESTTCP$ ''Default destination sub-directory.
- GLOBAL DESTCOM$ ''Default destination sub-directory.
- GLOBAL SETUPPROG$ ''Full Path of DLL to be load.
- GLOBAL FILEPATH$ ''Temp File Path.
- GLOBAL WINDRIVE$ ''Windows drive letter.
- GLOBAL OPT1OPT$ ''Option selection from OptFiles1 option dialog.
- GLOBAL OPT2OPT$ ''Option selection from OptFiles1 option dialog.
- GLOBAL OPT3OPT$ ''Option selection from OptFiles1 option dialog.
- GLOBAL OPT4OPT$ ''Option selection from OptFiles1 option dialog.
- GLOBAL OPT5OPT$ ''Option selection from OptFiles1 option dialog.
-
- ''CustInst list symbol names
- GLOBAL APPNEEDS$ ''Option list costs per drive
- GLOBAL OPT1NEEDS$
- GLOBAL OPT2NEEDS$
- GLOBAL OPT3NEEDS$
- GLOBAL OPT4NEEDS$
- GLOBAL OPT5NEEDS$
- GLOBAL EXTRACOSTS$ ''List of extra costs to add per drive
- GLOBAL BIGLIST$ ''List of option files cost calc results (boolean)
-
- ''Dialog list symbol names
- GLOBAL CHECKSTATES$
- GLOBAL STATUSTEXT$
- GLOBAL DRIVETEXT$
- ''
-
- GLOBAL DiskFileVersion$
- GLOBAL MasterFileVersion$
- GLOBAL TCPCONF$
- GLOBAL INSTALLEDKER%
- GLOBAL INSTALLKER%
- GLOBAL INSTALLEDTCP%
- GLOBAL INSTALLTCP%
- GLOBAL INSTALLCRYPT%
- GLOBAL INSTALLCTL3D%
- GLOBAL INSTALLCONVERT%
- GLOBAL KERNELTYPE$
- GLOBAL FINDTUNPATH%
-
-
-
- DECLARE SUB RegisterCtl3d LIB "tuntcp.dll"
- DECLARE SUB UnregisterCtl3d LIB "tuntcp.dll"
- DECLARE SUB ShowMaximize LIB "tuncomm.dll" (frame%)
- DECLARE FUNCTION CustomSetup LIB "tuncomm.dll" (frame%,szDir$)
- DECLARE FUNCTION AddTunDir LIB "tuncomm.dll" (szDir$) AS INTEGER
- DECLARE FUNCTION FindExistingPath LIB "tuncomm.dll" (szDir$) AS INTEGER
- DECLARE FUNCTION RemoveSysIniKey LIB "tuncomm.dll" (szFile$, szSection$, szEntry$, szKey$) AS INTEGER
- DECLARE FUNCTION MyAddSysIniKey LIB "tuncomm.dll" (szFile$, szSection$, szEntry$, szKey$) AS INTEGER
- DECLARE FUNCTION CreateSysFile LIB "tuncomm.dll" (szFile$) AS INTEGER
- DECLARE FUNCTION SaveFile LIB "tuncomm.dll" (szFile$) AS INTEGER
- DECLARE FUNCTION OutputStr LIB "tuncomm.dll" (szMsg$) AS INTEGER
- DECLARE FUNCTION OutputInt LIB "tuncomm.dll" (nVal%) AS INTEGER
- DECLARE FUNCTION EncryptFile LIB "tuncomm.dll" (szPath$, szSer$, szKey$, szLi$) AS INTEGER
- DECLARE FUNCTION AddLangMenu LIB "tuncomm.dll" (szPath$) AS INTEGER
- DECLARE FUNCTION CreatIniConvert LIB "tuncomm.dll" (szPath$) AS INTEGER
- DECLARE FUNCTION CreatIniTcp LIB "tuncomm.dll" (KerTyp$,Path$,InstMail%,nLG%) AS INTEGER
- DECLARE FUNCTION CreatIniKer LIB "tuncomm.dll" (Path$,InstTcp%) AS INTEGER
- DECLARE FUNCTION MyExitWindows LIB "tuncomm.dll" (nType%) AS INTEGER
-
- DECLARE FUNCTION IsInstalled (szSection$,szKey$,szFile$,szPath$) AS INTEGER
- DECLARE SUB AddOptFilesToCopyList (ftype%)
- DECLARE SUB RecalcOptFiles (ftype%)
- DECLARE SUB RecalcPath
- DECLARE SUB SetDriveStatus
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION MakeString (i%) AS STRING
- DECLARE FUNCTION IsNewer (szVersion1$, szVersion2$) AS INTEGER
-
-
-
- INIT:
- CUIDLL$ = "tuntcp.dll" ''custom user interface dll
- HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
-
- ''
- '' Setup control screen:
- '' Maximize Window, Add bitmap to CUIDLL, Set Window Title
- ''
- WndFrame% = HwndFrame()
- ShowMaximize WndFrame%
- SetBitmap CUIDLL$, LOGO
- SetTitle "Tun TCP - Setup"
-
- ''
- '' Read INF file
- ''
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "tuntcp.INF"
- END IF
- ReadInfFile szInf$
-
- ''
- '' Init Variables
- ''
- WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
- IF DEST$ = "" THEN
- DEST$ = WINDRIVE$ + ":\TUN"
- ENDIF
-
- ''CustInst list symbols
- CHECKSTATES$ = "CheckItemsState"
- STATUSTEXT$ = "StatusItemsText"
- DRIVETEXT$ = "DriveStatusText"
- FOR i% = 1 TO 7 STEP 1
- AddListItem CHECKSTATES$, "OFF"
- NEXT i%
- FOR i% = 1 TO 7 STEP 1
- AddListItem STATUSTEXT$, ""
- NEXT i%
- FOR i% = 1 TO 7 STEP 1
- AddListItem DRIVETEXT$, ""
- NEXT i%
- ReplaceListItem DRIVETEXT$, 7, DEST$
-
- ''Disk cost list symbols
- APPNEEDS$ = "AppNeeds"
- OPT1NEEDS$ = "Opt1Needs"
- OPT2NEEDS$ = "Opt2Needs"
- OPT3NEEDS$ = "Opt3Needs"
- OPT4NEEDS$ = "Opt4Needs"
- OPT5NEEDS$ = "Opt5Needs"
- EXTRACOSTS$ = "ExtraCosts"
- BIGLIST$ = "BigList"
- FOR i% = 1 TO 7 STEP 1
- AddListItem BIGLIST$, ""
- NEXT i%
- FOR i% = 1 TO 26 STEP 1
- AddListItem EXTRACOSTS$, "0"
- AddListItem OPT1NEEDS$, "0"
- AddListItem OPT2NEEDS$, "0"
- AddListItem OPT3NEEDS$, "0"
- AddListItem OPT4NEEDS$, "0"
- AddListItem OPT5NEEDS$, "0"
- NEXT i%
-
- ''File Option Variables
- OPT1OPT$ = "1"
- OPT2OPT$ = "1"
- OPT3OPT$ = "1"
- OPT4OPT$ = "1"
- OPT5OPT$ = "1"
-
- INSTALLKER%= 1
- INSTALLEDKER% = 0
- KERNELTYPE$ = "BTN2"
- ReplaceListItem CHECKSTATES$, OPTFILES1 , "ON"
-
- RecalcPath
- SetDriveStatus
-
-
- '$IFDEF DEBUG
- i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
- '$ENDIF ''DEBUG
-
- RegisterCtl3d
-
- IF ASKCUSTOM$ <> "NO" THEN
- CUSTINST:
- sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
-
- IF sz$ = "CONTINUE" THEN
- ''Install only if it will fit.
- FOR i% = 1 TO 7 STEP 1
- IF GetListItem(BIGLIST$, i%) <> "" THEN
- GOSUB TOOBIG
- GOTO CUSTINST
- END IF
- NEXT i%
- UIPop 1
- GOTO INSTALL
- ELSEIF sz$ = "PATH" THEN
- GOTO GETPATH
- ELSEIF sz$ = "CHK5" THEN
- RecalcOptFiles OPTFILES4
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "BTN2" OR sz$ = "BTN3" OR sz$ = "BTN4" THEN
- KERNELTYPE$ = sz$
- RecalcOptFiles OPTFILES1
- IF INSTALLEDKER% <> 1 THEN
- RecalcOptFiles OPTFILES5
- ENDIF
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO CUSTINST
- ELSE
- GOSUB ASKQUIT
- GOTO CUSTINST
- END IF
- ENDIF
-
- INSTALL:
-
- ''
- '' Init path sub-directory
- ''
-
- DESTKER$= MakePath( DEST$, "KERNELW")
- DESTTCP$= MakePath( DEST$, "TCPW")
- DESTCOM$= MakePath( DEST$, "COMMON")
-
- ''
- '' Find type of installation
- ''
- IF GetListItem(CHECKSTATES$, OPTFILES1) = "ON" THEN
- INSTALLKER% = 1
- IF FINDINSTTYPE$ <> "NO" THEN
-
- FILEPATH$= MakePath( DESTKER$, "TUNTCPIP.DLL")
- IF DoesFileExist ( FILEPATH$, femExits) = 1 THEN
- MasterFileVersion$ = GetSectionKeyVersion("KernelFiles","TUNTCPIP.DLL")
- DiskFileVersion$ = GetVersionOfFile( FILEPATH$)
- INSTALLEDKER% = IsNewer( DiskFileVersion$, MasterFileVersion$)
- ENDIF
-
- IF INSTALLEDKER% = 1 THEN
- SetSymbolValue "TitleYesNoBack", "Update"
- SetSymbolValue "MessageYesNoBack", "The same version of Tun KERNEL has been found. Do you want to overwrite it ?"
- INSK1:
- sz$ = UIStartDlg(CUIDLL$, ASKYESNOBACK, "FAskYesNoBackDlgProc", 0, "")
- UIPop 1
- IF sz$ = "YES" THEN
- INSTALLKER% = 1
- ELSEIF sz$ = "BACK" THEN
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO INSK1
- ELSE
- INSTALLKER% = 0
- ENDIF
- ELSEIF INSTALLEDKER% = 2 THEN
- SetSymbolValue "TitleYesNoBack", "Update"
- SetSymbolValue "MessageYesNoBack", "A previous version of Tun KERNEL has been found. Do you want to overwrite it ?"
- INSK2:
- sz$ = UIStartDlg(CUIDLL$, ASKYESNOBACK, "FAskYesNoBackDlgProc", 0, "")
- UIPop 1
- IF sz$ = "YES" THEN
- INSTALLKER% = 2
- ELSEIF sz$ = "BACK" THEN
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO INSK2
- ELSE
- INSTALLKER% = 0
- ENDIF
- ELSE
- INSTALLKER% = 1
- ENDIF
- ENDIF
- ELSE
- INSTALLKER% = 0
- ENDIF
-
- INSTALLEDTCP% = 0
- INSTALLTCP% = 1
- INSTALLCRYPT% = 1
- INSTALLCTL3D% = 1
- INSTALLCONVERT% = 1
- IF FINDINSTTYPE$ <> "NO" THEN
-
- FILEPATH$= MakePath( DESTTCP$, "WFTP.EXE")
- IF DoesFileExist ( FILEPATH$, femExits) = 1 THEN
- MasterFileVersion$ = GetSectionKeyVersion("TcpFiles","WFTP.EXE")
- DiskFileVersion$ = GetVersionOfFile( FILEPATH$)
- INSTALLEDTCP% = IsNewer( DiskFileVersion$, MasterFileVersion$)
- ENDIF
-
- IF INSTALLEDTCP% = 1 THEN
- SetSymbolValue "TitleYesNoBack", "Update"
- SetSymbolValue "MessageYesNoBack", "The same version of Tun TCP has been found. Do you want to overwrite it ?"
- INST1:
- sz$ = UIStartDlg(CUIDLL$, ASKYESNOBACK, "FAskYesNoBackDlgProc", 0, "")
- UIPop 1
- IF sz$ = "YES" THEN
- INSTALLTCP% = 1
- ELSEIF sz$ = "BACK" THEN
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO INST1
- ELSE
- INSTALLTCP% = 0
- ENDIF
- ELSEIF INSTALLEDTCP% = 2 THEN
- SetSymbolValue "TitleYesNoBack", "Update"
- SetSymbolValue "MessageYesNoBack", "A previous version of Tun TCP has been found. Do you want to overwrite it ?"
- INST2:
- sz$ = UIStartDlg(CUIDLL$, ASKYESNOBACK, "FAskYesNoBackDlgProc", 0, "")
- UIPop 1
- IF sz$ = "YES" THEN
- INSTALLTCP% = 2
- ELSEIF sz$ = "BACK" THEN
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO INST2
- ELSE
- INSTALLTCP% = 0
- ENDIF
- ELSE
- INSTALLTCP% = 1
- ENDIF
-
- '' Tuncrypt ?
- fInst% = IsInstalled ("CryptFiles","TUNCRYPT.DLL","TUNCRYPT.DLL",DESTCOM$)
- IF fInst% <> 2 AND fInst% <> 4 THEN
- INSTALLCRYPT%=0
- ENDIF
-
- '' Convert ?
- fInst% = IsInstalled ("ConvertFiles","CONVERT.DLL","CONVERT.DLL",DESTCOM$)
- IF fInst% <> 2 AND fInst% <> 4 THEN
- INSTALLCONVERT%=0
- ENDIF
-
- '' CTL3D ?
- fInst% = IsInstalled ("Ctl3dFiles","CTL3D.TUN","CTL3D.DLL",GetWindowsSysDir)
- IF fInst% = 0 OR fInst% = 1 THEN
- INSTALLCTL3D%=0
- ELSEIF fInst% = 2 THEN
- INSTALLCTL3D%=2
- ENDIF
-
- ENDIF
- IF INSTALLTCP% = 0 AND INSTALLKER%= 0 THEN
- GOTO CUSTINST
- ENDIF
-
- ''
- '' Serialization Dialogue Box
- ''
- IF ENCRYPTDLG$ <> "NO" THEN
- SERIAL:
- sz$ = UIStartDlg(CUIDLL$, GETSERIALNUM, "FNameOrgDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CANCEL" THEN
- sz$ = UIStartDlg(CUIDLL$, CDBADORG, "FInfoDlgProc", 0, "" )
- UIPop 1
- GOTO SERIAL
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO SERIAL
- ELSEIF sz$ <> "CONTINUE" THEN
- GOTO SERIAL
- ENDIF
-
- szSN$ = GetSymbolValue( "NameOut" )
- szAK$ = GetSymbolValue( "OrgOut" )
- szLS$ = GetSymBolValue( "LicenseStringOut" )
- szHEAD$ = MID$( szSN$, 4, 2 )
- IF szHEAD$ <> "02" AND szHEAD$ <> "00" THEN
- BADF1:
- sz$ = UIStartDlg(CUIDLL$, CDBADFILE, "FInfoDlgProc", 0, "" )
- UIPop 1
- IF sz$ = "EXIT" THEN
- GOTO ASKQUIT
- GOTO SERIAL
- ELSEIF sz$ = "CONTINUE" THEN
- GOTO SERIAL
- ELSE
- GOTO BADF1
- ENDIF
- ENDIF
- UIPop 1
- ENDIF
-
-
- ''
- '' Copy procedure
- ''
- IF COPYFILES$ <> "NO" THEN
- ClearCopyList
- AddOptFilesToCopyList APPFILES
- AddOptFilesToCopyList OPTFILES1
- IF INSTALLKER% = 1 THEN
- AddOptFilesToCopyList OPTFILES5
- ENDIF
- IF INSTALLCRYPT% = 1 THEN
- AddOptFilesToCopyList CRYPTFILES
- ENDIF
- IF INSTALLCONVERT% = 1 THEN
- AddOptFilesToCopyList CONVERTFILES
- ENDIF
- IF INSTALLCTL3D% <> 0 THEN
- AddOptFilesToCopyList CTL3DFILES
- ENDIF
- AddOptFilesToCopyList OPTFILES4
- CreateDir DEST$, cmoNone
- SetRestartDir MakePath( DEST$, "TMP")
- CopyFilesInCopyList
-
- ENDIF
-
- ''
- '' Encrypt procedure
- ''
- IF ENCRYPTFILES$ <> "NO" THEN
-
- '' SetSymbolValue "NameOut", szSN$
- '' SetSymbolValue "OrgOut", szAK$
- '' SetSymBolValue "LicenseStringOut", szLS$
- ''IF INSTALLKER% <> 0 THEN
- '' SetSymbolValue "PathFiles", DESTKER$
- '' SetSymbolValue "ProgramType", "KER"
- '' sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", 0, "" )
- '' UIPop 1
- ''ENDIF
- '' SetSymbolValue "PathFiles", DESTTCP$
- '' SetSymbolValue "ProgramType", "TCP"
- '' sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", 0, "" )
- '' UIPop 1
-
- fEncryt%=EncryptFile(DESTCOM$, szSN$, szAK$, szLS$)
-
- ENDIF
-
- ''
- '' Installation of CTL3D.DLL if required
- ''
- CTL3D:
- szNF$ = MakePath(DESTCOM$ , "CTL3D.TUN")
- szOF$ = GetWindowsSysDir() + "CTL3D.DLL"
- IF INSTALLCTL3D% = 2 THEN
- CTL3D1:
- sz$ = UIStartDlg(CUIDLL$, ASKUPDATE, "FAskUpdateDlgProc", 0, "")
- IF sz$ = "YES" THEN
- CopyFile szOF$, GetWindowsSysDir() + "CTL3D.OLD", cmoOverwrite, 0
- CopyFile szNF$, szOF$, cmoOverwrite, 0
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO CTL3D1
- ENDIF
- UIPop 1
- ELSEIF INSTALLCTL3D% = 1 THEN
- CopyFile szNF$, szOF$, cmoOverwrite, 0
- ENDIF
-
- ''CHECKCONFIG:
- '' szNF$ = MakePath(DEST$ , "BIN\CTL3D.TUN")
- '' szOF$ = GetWindowsSysDir() + "CTL3D.DLL"
- '' SetSymbolValue "NewFile", szNF$
- '' SetSymbolValue "OldFile", szOF$
- '' sz$ = UIStartDlg(CUIDLL$, MODELESS2, "FCheckConfigDlgProc", 0, "" )
- '' IF sz$ = "UPDATE" THEN
- '' GOSUB ASKUPDATE
- '' END IF
- '' UIPop 1
-
-
- ''
- '' Modification/Creation of Tun TCP / Tun KERNEL entry in TUN.INI
- ''
- IF CREATEINIFILES$ <> "NO" THEN
-
- CursorSave% = ShowWaitCursor()
-
- szLG$ = MID$( szSN$, 3, 1 )
- nLG% = (ASC(MID$(szSN$,6,1)) - ASC("0")) * 10 + (ASC(MID$(szSN$,7,1)) - ASC("0"))
- IF DoesIniKeyExist( MakePath( GetWindowsDir(), "TUN.INI"), "Language", "Language") = 0 THEN
- IF nLG% = 1 THEN
- szLGN$= "01"
- ELSEIF nLG% > 3 THEN
- szLGN$ = MakeString(nLG% - 2 )
- ELSE
- szLGN$ ="00"
- END IF
- CreateIniKeyValue MakePath( GetWindowsDir(), "TUN.INI"), "Language", "Language", szLGN$ ,cmoOverwrite
- END IF
-
- IF INSTALLCRYPT% = 1 THEN
- i%=AddLangMenu(DESTCOM$)
- ENDIF
-
- IF INSTALLCONVERT% = 1 THEN
- i%=CreatIniConvert(DESTCOM$)
- ENDIF
-
- ''
- '' Save file system.ini in system.XXX before modification
- '' Delete old and Add new TUNREDIR.386 or TUNNFS.386
- ''
-
- i%= SaveFile( MakePath( GetWindowsDir(), "SYSTEM.INI"))
-
- IF KERNELTYPE$ = "BTN2" THEN
- i%= RemoveSysIniKey( MakePath( GetWindowsDir(), "SYSTEM.INI"), "386Enh", "device", "TUNNFS.386")
- i%= RemoveSysIniKey( MakePath( GetWindowsDir(), "SYSTEM.INI"), "386Enh", "device", "TUNREDIR.386")
- i%= MyAddSysIniKey( MakePath( GetWindowsDir(), "SYSTEM.INI"), "386Enh", "device", MakePath( DESTTCP$, "TUNREDIR.386"))
-
- ELSEIF KERNELTYPE$ = "BTN3" THEN
- i%= RemoveSysIniKey( MakePath( GetWindowsDir(), "SYSTEM.INI"), "386Enh", "device", "TUNREDIR.386")
- i%= RemoveSysIniKey( MakePath( GetWindowsDir(), "SYSTEM.INI"), "386Enh", "device", "TUNNFS.386")
- i%= MyAddSysIniKey(MakePath( GetWindowsDir(), "SYSTEM.INI"), "386Enh", "device", MakePath( DESTTCP$, "TUNNFS.386"))
-
- ENDIF
-
- ''
- '' Create System files
- ''
- i%= CreateSysFile(MakePath( DESTTCP$, "WLPD.INI"))
- i%= CreateSysFile(MakePath( DESTTCP$, "WNFSD.INI"))
- i%= CreateSysFile(MakePath( DESTTCP$, "WFTPD.INI"))
-
- ''
- '' Modification/Creation of needed entries for NDD
- ''
-
- IF DoesIniKeyExist(MakePath(GetWindowsDir,"SYSTEM.INI"),"boot","network.drv") = 1 THEN
- NDD$ = GetIniKeyString(MakePath(GetWindowsDir,"SYSTEM.INI"), "boot", "network.drv")
- NDD$ = LCASE$(NDD$)
- IF DoesIniKeyExist(MakePath(GetWindowsDir,"SYSTEM.INI"),"boot","secondnet.drv") = 1 THEN
- SNDD$ = GetIniKeyString(MakePath(GetWindowsDir,"SYSTEM.INI"), "boot", "secondnet.drv")
- SNDD$ = LCASE$(SNDD$)
- END IF
- END IF
-
- IF NDD$ <> "" THEN
- IF INSTR(1, NDD$, "wfwnet.drv") THEN
- IF SNDD$ <> "" THEN
- IF INSTR(1 ,SNDD$ , "tuntcp.drv") OR INSTR(1, SNDD$, "tunnet.drv") THEN
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", "secondnet.drv", MakePath(DESTTCP$,"TUNNET.DRV"), cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot.description", "secondnet.drv", "Tun TCP ESKER (version 8.00)", cmoOverwrite
- ELSE
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", ";secondnet.drv", SNDD$, cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", "secondnet.drv", MakePath(DESTTCP$,"TUNNET.DRV"), cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot.description", "secondnet.drv", "Tun TCP ESKER (version 8.00)", cmoOverwrite
- CreateIniKeyValue MakePath( DESTTCP$, "TUNNET.INI"), "Othernet", "Path", SNDD$, cmoOverwrite
- CreateIniKeyValue MakePath( DESTTCP$, "TUNNET.INI"), "Othernet", "Enable", "Yes", cmoOverwrite
- IF INSTR(1, SNDD$, "netware.drv") THEN
- OTHERNETNAME$= "Novell"
- ELSEIF INSTR(1,SNDD$, "lanman") THEN
- OTHERNETNAME$= "LAN Manager"
- ELSE
- OTHERNETNAME$= "Other"
- ENDIF
- CreateIniKeyValue MakePath( DESTTCP$, "TUNNET.INI"), "Othernet", "Name", OTHERNETNAME$, cmoOverwrite
- END IF
- ELSE
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", "secondnet.drv", MakePath(DESTTCP$,"TUNNET.DRV"), cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot.description", "secondnet.drv", "Tun TCP ESKER (version 8.00)", cmoOverwrite
- ENDIF
- ELSE
- IF INSTR(1 ,NDD$ , "tuntcp.drv") OR INSTR(1, NDD$, "tunnet.drv") THEN
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", ";network.drv", NDD$ ,cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", "network.drv", MakePath(DESTTCP$,"TUNNET.DRV"), cmoOverwrite
- ELSE
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", ";network.drv", NDD$ ,cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", "network.drv", MakePath(DESTTCP$,"TUNNET.DRV"), cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot.description", "network.drv", "Tun TCP ESKER (version 8.00)", cmoOverwrite
- CreateIniKeyValue MakePath( DESTTCP$, "TUNNET.INI"), "Othernet", "Path", NDD$, cmoOverwrite
- CreateIniKeyValue MakePath( DESTTCP$, "TUNNET.INI"), "Othernet", "Enable", "Yes", cmoOverwrite
- IF INSTR(1, NDD$, "netware.drv") THEN
- OTHERNETNAME$= "Novell"
- ELSEIF INSTR(1,NDD$, "lanman") THEN
- OTHERNETNAME$= "LAN Manager"
- ELSE
- OTHERNETNAME$= "Other"
- ENDIF
- CreateIniKeyValue MakePath( DESTTCP$, "TUNNET.INI"), "Othernet", "Name", OTHERNETNAME$, cmoOverwrite
- ENDIF
- ENDIF
- ELSE
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot", "network.drv", MakePath(DESTTCP$,"TUNNET.DRV"), cmoOverwrite
- CreateIniKeyValue MakePath( GetWindowsDir(), "SYSTEM.INI"), "boot.description", "network.drv", "Tun TCP ESKER (version 8.00)", cmoOverwrite
- END IF
-
-
- IF INSTALLKER% <> 0 THEN
- i%= CreatIniKer(DESTKER$,INSTALLTCP%)
- ENDIF
-
- i%= CreatIniTcp(KERNELTYPE$,DESTTCP$,0,nLG%)
-
- RestoreCursor CursorSave%
- ENDIF
-
- ''
- '' Add Path of Tun KERNEL in AUTOEXEC.BAT
- ''
- FINDTUNPATH%=1
- IF ADDPATH$ <> "NO" THEN
-
- IF INSTALLKER% <> 0 THEN
- FINDTUNPATH% = FindExistingPath(DESTKER$)
- IF FINDTUNPATH% = 0 THEN
- i% = AddTunDir(DESTKER$)
- ENDIF
- ENDIF
- ENDIF
-
- ''
- '' Ask to configure TCP/IP
- ''
- TCPCONF$ = "NO"
-
- IF ASKTCPCONF$ <> "NO" THEN
-
- IF INSTALLKER% <> 0 THEN
- SetSymbolValue "MessageYesNo", "Do you want to configure TCP/IP now ? This can be done later running the Administrator"
- SetSymbolValue "TitleYesNo", "TCP/IP Configuration"
- TCPCONF1:
- TCPCONF$ = UIStartDlg(CUIDLL$, ASKYESNO, "FAskYesNoDlgProc", 0, "" )
- IF TCPCONF$ = "REACTIVATE" THEN
- GOTO TCPCONF1
- ENDIF
- UIPop 1
- ENDIF
-
- ENDIF
-
- ''
- '' Run TCP/IP Custom Dialogs
- ''
- IF RUNTCPCONF$ <> "NO" THEN
-
- IF INSTALLKER% <> 0 THEN
- IF TCPCONF$= "YES" THEN
- SETUPPROG$= MakePath( DESTKER$, "WTCPDLG.DLL")
- i% = CustomSetup( WndFrame%, SETUPPROG$)
- ENDIF
- ENDIF
- ENDIF
-
- ''
- '' TUN KERNEL ProgramGroup and ProgramItem creation
- ''
-
- IF CREATEGROUPS$ <> "NO" THEN
-
- CreateProgmanGroup "Tun TCP", "", cmoNone
- ShowProgmanGroup "Tun TCP", 1, cmoNone
-
- IF INSTALLKER% <> 0 THEN
- CreateProgmanItem "Tun TCP", "Admin", MakePath( DESTTCP$, "WTUNTCPW.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "WTCPIP", MakePath( DESTKER$, "WTCPIP.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "Ping", MakePath( DESTKER$, "WPING.EXE" ), "", cmoOverwrite
- ELSE
- IF KERNELTYPE$ = "BTN4" THEN
- CreateProgmanItem "Tun TCP", "Admin", MakePath( DESTTCP$, "WTUNTCPW.EXE -TCPIP -NFS" ), "", cmoOverwrite
- ELSE
- CreateProgmanItem "Tun TCP", "Admin", MakePath( DESTTCP$, "WTUNTCPW.EXE -TCPIP" ), "", cmoOverwrite
- ENDIF
-
- ENDIF
-
- CreateProgmanItem "Tun TCP", "VT320 Emulator", MakePath( DESTTCP$, "WVT320.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "File Transfer", MakePath( DESTTCP$, "WFTP.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "Email", MakePath( DESTTCP$, "WMAIL2.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "Remote Command", MakePath( DESTTCP$, "WRSH.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "Tape Archive", MakePath( DESTTCP$, "WTAR.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "Print Server", MakePath( DESTTCP$, "WLPD.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "FTP Server", MakePath( DESTTCP$, "WFTPD.EXE" ), "", cmoOverwrite
- CreateProgmanItem "Tun TCP", "NFS Server", MakePath( DESTTCP$, "WNFSD.EXE" ), "", cmoOverwrite
-
- ENDIF
-
- ''
- '' Run TCP/IP Custom Dialogs
- ''
- IF RUNTCPCONF$ <> "NO" THEN
-
- IF INSTALLKER% <> 0 THEN
- IF TCPCONF$= "YES" THEN
- SETUPPROG$= MakePath( DESTKER$, "WTCPDLG.DLL")
- i% = CustomSetup( WndFrame%, SETUPPROG$)
- ENDIF
- ENDIF
- ENDIF
-
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- IF COPYFILES$ <> "NO" THEN
- IF RestartListEmpty() = 0 THEN
- dumb% = ExitExecRestart()
- END IF
- ENDIF
- IF FINDTUNPATH% = 0 OR (INSTALLTCP% <> 0 AND (KERNELTYPE$ = "BTN2" OR KERNELTYPE$ = "BTN3")) THEN
- IF FINDTUNPATH% = 0 THEN
- REBOOT1:
- SetSymbolValue "TitleYesNo", "Restart System"
- SetSymbolValue "MessageYesNo", "Setup has modified AUTOEXEC.BAT file. Do you want to restart the computer ?"
- sz$ = UIStartDlg(CUIDLL$, ASKYESNO, "FAskYesNoDlgProc", 0, "")
- UIPop 1
- IF sz$ <> "NO" THEN
- i%=MyExitWindows(1)
- GOTO REBOOT1
- ENDIF
- ELSE
- REBOOT2:
- SetSymbolValue "TitleYesNo", "Restart Windows"
- SetSymbolValue "MessageYesNo", "Setup has modified Windows system files. Do you want to restart Windows ?"
- sz$ = UIStartDlg(CUIDLL$, ASKYESNO, "FAskYesNoDlgProc", 0, "")
- UIPop 1
- IF sz$ <> "NO" THEN
- i%=MyExitWindows(0)
- GOTO REBOOT2
- ENDIF
- ENDIF
-
- ENDIF
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- ELSE
- dlg% = EXITFAILURE
- END IF
- QUITL1:
- sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UnregisterCtl3d
- UIPop 1
-
- END
-
- ERRQUIT:
- i% = DoMsgBox("Les sources de Setup ne sont plus valide, appelez le support technique!", "Message Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
-
-
- GETPATH:
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
-
- IF sz$ = "CONTINUE" THEN
- olddest$ = DEST$
- DEST$ = GetSymbolValue("EditTextOut")
-
- ''Validate new path.
- IF IsDirWritable(DEST$) = 0 THEN
- GOSUB BADPATH
- GOTO GETPATHL1
- END IF
- UIPop 1
-
- ''Truncate display if too long.
- IF LEN(DEST$) > 23 THEN
- ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
- ELSE
- ReplaceListItem DRIVETEXT$, 7, DEST$
- END IF
-
- ''Recalc if path changed.
- IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
- RecalcPath
- SetDriveStatus
- END IF
-
- olddest$ = ""
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO GETPATHL1
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETPATHL1
- ELSE
- UIPop 1
- GOTO CUSTINST
- END IF
-
-
- GETPATHWIN:
- SetSymbolValue "EditTextIn", WINSOCKPATH$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1WIN:
- sz$ = UIStartDlg(CUIDLL$, WINPATH, "FEditDlgProc", APPHELP, HELPPROC$)
-
- IF sz$ = "CONTINUE" THEN
- oldwinsockpath$ = WINSOCKPATH$
- WINSOCKPATH$ = GetSymbolValue("EditTextOut")
-
- ''Validate new path.
- IF IsDirWritable(WINSOCKPATH$) = 0 THEN
- GOSUB BADPATH
- GOTO GETPATHL1WIN
- END IF
- UIPop 1
-
- ''Truncate display if too long.
- IF LEN(WINSOCKPATH$) > 23 THEN
- ReplaceListItem DRIVETEXT$, 4, MID$(WINSOCKPATH$, 1, 23)+"..."
- ELSE
- ReplaceListItem DRIVETEXT$, 4, WINSOCKPATH$
- END IF
-
- oldwinsockpath$ = ""
- GOTO CUSTINST
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATHL1WIN
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETPATHL1WIN
- ELSE
- UIPop 1
- GOTO CUSTINST
- END IF
-
- ''OPTFILES1:
- '' SetSymbolValue "RadioDefault", OPT1OPT$
- ''OPT1L1:
- '' sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
- '' newopt$ = GetSymbolValue("ButtonChecked")
- ''
- '' IF sz$ = "CONTINUE" THEN
- '' UIPop 1
- '' IF newopt$ <> OPT1OPT$ THEN
- '' OPT1OPT$ = newopt$
- '' RecalcOptFiles OPTFILES1
- '' SetDriveStatus
- '' END IF
- '' newopt$ = ""
- '' GOTO CUSTINST
- '' ELSEIF sz$ = "REACTIVATE" THEN
- '' RecalcPath
- '' SetDriveStatus
- '' GOTO OPT1L1
- '' ELSEIF sz$ = "EXIT" THEN
- '' GOSUB ASKQUIT
- '' GOTO OPT1L1
- '' ELSE
- '' UIPop 1
- '' newopt$ = ""
- '' GOTO CUSTINST
- '' END IF
-
-
-
- ''OPTFILES2:
- '' SetSymbolValue "RadioDefault", OPT2OPT$
- ''OPT2L1:
- '' sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
- '' newopt$ = GetSymbolValue("ButtonChecked")
- ''
- '' IF sz$ = "CONTINUE" THEN
- '' UIPop 1
- '' IF newopt$ <> OPT2OPT$ THEN
- '' OPT2OPT$ = newopt$
- '' RecalcOptFiles OPTFILES2
- '' SetDriveStatus
- '' END IF
- '' newopt$ = ""
- '' GOTO CUSTINST
- '' ELSEIF sz$ = "REACTIVATE" THEN
- '' RecalcPath
- '' SetDriveStatus
- '' GOTO OPT2L1
- '' ELSEIF sz$ = "EXIT" THEN
- '' GOSUB ASKQUIT
- '' GOTO OPT2L1
- '' ELSE
- '' UIPop 1
- '' newopt$ = ""
- '' GOTO CUSTINST
- '' END IF
-
- ASKUPDATE:
- sz$ = UIStartDlg(CUIDLL$, ASKUPDATE, "FAskUpdateDlgProc", 0, "")
- IF sz$ = "YES" THEN
- CopyFile szOF$, GetWindowsSysDir() + "CTL3D.OLD", cmoOverwrite, 0
- CopyFile szNF$, szOF$, cmoOverwrite, 0
- ENDIF
-
- UIPop 1
- RETURN
-
- TOOBIG:
- sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO TOOBIG
- END IF
- UIPop 1
- RETURN
-
-
-
- BADPATH:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- GOTO BADPATH
- END IF
- UIPop 1
- RETURN
-
-
- ASKQUIT:
- sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF sz$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- END IF
- RETURN
-
-
-
- '**
- '** Purpose:
- '** Adds the specified option files to the copy list.
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** APPFILES, OPTFILES1, OPTFILES2
- '** Returns:
- '** none.
- '*************************************************************************
- SUB AddOptFilesToCopyList (ftype%) STATIC
-
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- IF ftype% = APPFILES THEN
- AddSectionFilesToCopyList "TcpFiles", SrcDir$, DEST$
- ELSEIF ftype% = OPTFILES1 AND KERNELTYPE$ = "BTN2" THEN
- IF INSTALLKER% <> 0 THEN
- AddSectionFilesToCopyList "KernelFiles", SrcDir$, DEST$
- ENDIF
- AddSectionFilesToCopyList "NfsDllFiles", SrcDir$, DEST$
- ELSEIF ftype% = OPTFILES1 AND KERNELTYPE$ = "BTN3" THEN
- AddSectionFilesToCopyList "NfsVxdFiles", SrcDir$, DEST$
- ELSEIF ftype% = OPTFILES5 THEN
- AddSectionFilesToCopyList "KernelnFiles", SrcDir$, DEST$
- ELSEIF ftype% = OPTFILES4 AND GetListItem(CHECKSTATES$, OPTFILES4) = "ON" THEN
- AddSectionFilesToCopyList "Pop3Files", SrcDir$, DEST$
- ELSEIF ftype% = CRYPTFILES THEN
- AddSectionFilesToCopyList "CryptFiles", SrcDir$, DEST$
- ELSEIF ftype% = CTL3DFILES THEN
- AddSectionFilesToCopyList "Ctl3dFiles", SrcDir$, DEST$
- ELSEIF ftype% = CONVERTFILES THEN
- AddSectionFilesToCopyList "ConvertFiles", SrcDir$, DEST$
- ENDIF
- SrcDir$ = ""
-
- END SUB
-
-
- '**
- '** Purpose:
- '** Recalculates disk space for the given option files and sets
- '** the status info symbol "StatusItemsText".
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** APPFILES, OPTFILES1, OPTFILES2
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcOptFiles (ftype%) STATIC
- CursorSave% = ShowWaitCursor()
- ClearCopyList
- AddOptFilesToCopyList ftype%
-
- fExtra% = 0
- IF ftype% = APPFILES THEN
- ListSym$ = APPNEEDS$
- '' IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
- ''Add extra cost to Windows drive for ini/progman, etc.
- ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
- ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
- fExtra% = 1
- '' END IF
- ELSEIF ftype% = OPTFILES1 THEN
- ListSym$ = OPT1NEEDS$
- ELSEIF ftype% = OPTFILES2 THEN
- ListSym$ = OPT2NEEDS$
- ELSEIF ftype% = OPTFILES3 THEN
- ListSym$ = OPT3NEEDS$
- ELSEIF ftype% = OPTFILES4 THEN
- ListSym$ = OPT4NEEDS$
- ELSEIF ftype% = OPTFILES5 THEN
- ListSym$ = OPT5NEEDS$
- ELSEIF ftype% = OPTFILES6 THEN
- ListSym$ = OPT6NEEDS$
- END IF
-
- StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
-
- cost& = 0
- FOR i% = 1 TO 26 STEP 1
- cost& = cost& + VAL(GetListItem(ListSym$, i%))
- NEXT i%
- ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
-
- IF StillNeed& > 0 THEN
- ReplaceListItem BIGLIST$, ftype%, "YES"
- ELSE
- ReplaceListItem BIGLIST$, ftype%, ""
- END IF
-
- IF fExtra% THEN
- ReplaceListItem EXTRACOSTS$, ndrive%, "0"
- END IF
- RestoreCursor CursorSave%
- ListSym$ = ""
- END SUB
-
-
- '**
- '** Purpose:
- '** Recalculates disk space and sets option status info according
- '** to the current destination path.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcPath STATIC
-
- CursorSave% = ShowWaitCursor()
-
- DESTKER$= MakePath( DEST$, "KERNELW")
- FILEPATH$= MakePath( DESTKER$, "TUNTCPIP.DLL")
- IF DoesFileExist ( FILEPATH$, femExits) = 1 THEN
- MasterFileVersion$ = GetSectionKeyVersion("KernelFiles","TUNTCPIP.DLL")
- DiskFileVersion$ = GetVersionOfFile( FILEPATH$)
- INSTALLEDKER% = IsNewer( DiskFileVersion$, MasterFileVersion$)
- ENDIF
- RecalcOptFiles APPFILES
- '' IF INSTALLEDKER% <> 1 THEN
- '' ReplaceListItem CHECKSTATES$, OPTFILES1, "ON"
- '' ELSE
- '' ReplaceListItem CHECKSTATES$, OPTFILES1, "OFF"
- '' ENDIF
- RecalcOptFiles OPTFILES1
- IF INSTALLEDKER% <> 1 THEN
- RecalcOptFiles OPTFILES5
- ENDIF
- RecalcOptFiles OPTFILES4
-
- RestoreCursor CursorSave%
- END SUB
-
-
- '**
- '** Purpose:
- '** Sets drive status info according to latest disk space calcs.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB SetDriveStatus STATIC
-
- drive$ = MID$(DEST$, 1, 1)
- ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
- cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) +VAL(GetListItem(OPT1NEEDS$, ndrive%)) +VAL(GetListItem(OPT2NEEDS$, ndrive%)) +VAL(GetListItem(OPT3NEEDS$, ndrive%)) +VAL(GetListItem(OPT4NEEDS$, ndrive%)) +VAL(GetListItem(OPT5NEEDS$, ndrive%))
- free& = GetFreeSpaceForDrive(drive$)
- ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
- ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
-
- IF drive$ = WINDRIVE$ THEN
- '' ReplaceListItem DRIVETEXT$, 4, ""
- ReplaceListItem DRIVETEXT$, 5, ""
- ReplaceListItem DRIVETEXT$, 6, ""
- ELSE
- ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
- cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) +VAL(GetListItem(OPT1NEEDS$, ndrive%)) +VAL(GetListItem(OPT2NEEDS$, ndrive%)) +VAL(GetListItem(OPT3NEEDS$, ndrive%))
- IF cost& = 0 THEN
- '' ReplaceListItem DRIVETEXT$, 4, ""
- ReplaceListItem DRIVETEXT$, 5, ""
- ReplaceListItem DRIVETEXT$, 6, ""
- ELSE
- free& = GetFreeSpaceForDrive(WINDRIVE$)
- '' ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
- ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
- END IF
- END IF
- END SUB
-
-
- '**
- '** Purpose:
- '** Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** szFile$ - filename to append to directory
- '** Returns:
- '** Resulting fully qualified path name.
- '*************************************************************************
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
- FUNCTION MakeString (i%) STATIC AS STRING
-
- Number$ = "0123456789"
- MakeString = "0" + MID$(Number$,i%+1 ,1)
-
- END FUNCTION
-
- '**
- '** Purpose:
- '** Newest version
- '** Arguments:
- '** szVersion1$ - N.N.N.N version string 1
- '** szVersion2$ - N.N.N.N version string 2
- '** Returns:
- '** If szVersion1$ > szVersion2$ return 0
- '** If szVersion1$ = szVersion2$ return 1
- '** If szVersion1$ < szVersion2$ return 2
- '*************************************************************************
- FUNCTION IsNewer (szVersion1$, szVersion2$) STATIC AS INTEGER
- IF GetVersionNthField(szVersion1$,1) < GetVersionNthField(szVersion2$,1) THEN
- IsNewer = 2
- ELSEIF GetVersionNthField(szVersion1$,1) > GetVersionNthField(szVersion2$,1) THEN
- IsNewer = 0
- ELSE
- IF GetVersionNthField(szVersion1$,2) < GetVersionNthField(szVersion2$,2) THEN
- IsNewer = 2
- ELSEIF GetVersionNthField(szVersion1$,2) > GetVersionNthField(szVersion2$,2) THEN
- IsNewer = 0
- ELSE
- IF GetVersionNthField(szVersion1$,3) < GetVersionNthField(szVersion2$,3) THEN
- IsNewer = 2
- ELSEIF GetVersionNthField(szVersion1$,3) > GetVersionNthField(szVersion2$,3) THEN
- IsNewer = 0
- ELSE
- IF GetVersionNthField(szVersion1$,4) < GetVersionNthField(szVersion2$,4) THEN
- IsNewer = 2
- ELSEIF GetVersionNthField(szVersion1$,4) > GetVersionNthField(szVersion2$,4) THEN
- IsNewer = 0
- ELSE
- IsNewer = 1
- END IF
- END IF
- END IF
- END IF
- END FUNCTION
-
- FUNCTION IsInstalled(szSection$,szKey$,szFile$,szPath$) STATIC AS INTEGER
-
- IsInstalled = 4
- FILEPATH$= MakePath( szPath$, szFile$)
- IF DoesFileExist ( FILEPATH$, femExists) = 1 THEN
- MasterFileVersion$ = GetSectionKeyVersion(szSection$,szKey$)
- DiskFileVersion$ = GetVersionOfFile( FILEPATH$)
- IsInstalled = IsNewer( DiskFileVersion$, MasterFileVersion$)
- ENDIF
-
- END FUNCTION